// 导入express
const express = require('express');

//导入express-session
const session = require('express-session');
// 导入connect-mongo  ---  用来连接mongodb服务器
const connectMongo = require('connect-mongo');

// 创建应用列表
const app = express();

//设置session中间件
app.use(session({
    name: 'sid',//设置cookie的name(用户发送信息后服务器返回的一个cookie_id)
    secret: 'lk',//参加加密的字符串(又称签名) -- 加盐
    saveUninitialized: false,//是否为每次请求都设置一个cookie用来存储session的id
    resave: true,//是否在每次请求时都重新保存session过期的时间
    store: connectMongo.create({
        mongoUrl: 'mongodb://127.0.0.1:27017/bilibili'//连接数据库的配置
    }),
    cookie: {//服务器返回的数据
        httpOnly: true,//开启后前端无法通过js操作
        maxAge: 1000 * 300//控制 sessionID 过期的时间
    }
}));
//登录的路由规则
app.get('/login',((req, res) => {
    if (req.query.username==='lk'&&req.query.password==='123'){
        //设置session信息
        req.session .username='lk';
        req.session.uid='123asd';
        //设置响应体
        res.send('登录成功！')
    }else {
        res.send('登录失败！')
    }
}))
app.get('/shopping',((req, res) => {
    if (req.session.username){
        res.send('shoppingPage！'+req.session.username)
    }
    else {
        res.send('你还未登录！')
    }
}));

// session的销毁
app.get('/logout', (req, res) => {
    req.session.destroy(()=>{
        res.send('退出登录成功！');
    });
});

// 启动服务
app.listen(9000, () => {
    console.log('open~');
});